package com.mes.cloud.enums;

import lombok.Getter;

@Getter
public enum HttpStatusEnum {
    TREE_CODE(701, "编码已存在！"),
    UNIQUE(202, "编码,值，显示值唯一"),
    OK(200, "请求成功"),
    FAIL(201, "处理失败"),
    BAD_REQUEST(400, "请求参数有误"),
    UNAUTHORIZED(401, "没有被授权或者授权已经失效"),
    INTERNAL_SERVER_ERROR(500, "服务器开小差了"),
    RECORD_NOT_EXIST(600, "记录不存在"),
    RECORD_EXIST(601, "记录已存在"),
    TREE_LEAF_FLAG_YES(700, "当前节点还有子节点"),
    TREE_DEL_FLAG_ERROR(701, "该菜单有启用状态按钮，菜单树不允许停用。如果要停用，需要找开发人员删除按钮"),
    CODE_EXIST(800, "编码已存在"),
    CUSTOMER_TYPE_EXIST(801, "客户类型已存在"),
    MENU_SN_EXIST(802, "SN已经存在"),
    REF_EXIST(900, "关联关系已存在"),
    ORG_LEADER_EXIST(901, "组织负责人已存在"),
    ORG_CHILDREN_EXIST(902, "组织存在子节点"),
    PRODUCT_ENABLE_ERROR(903, "只允许停用竞品"),
    PRODUCT_DIRECTORY_TYPE_ERROR(904, "只允许添加竞品目录"),
    PRODUCT_BASIC_UNIT_EXIST(905, "产品基本单位已存在"),
    PRODUCT_DIRECTORY_EXIST_CHILD_NODE(906, "产品目录存在子节点"),
    POSITION_ENABLE_ERROR(907, "岗位已关联员工不能被停用"),
    REF_EXIST_POSITION_SUPERIOR(908, "已经存有上级岗位，如需添加，请先移除！"),
    REF_NO_POSITION_SUPERIOR(909, "不能关联自己为上级岗位！"),
    PRODUCT_EXIST(910, "产品已存在"),
    ORG_NOT_NULL(911, "组织不能为空"),
    ORG_POSITION_NAME_EXIST(912, "同一组织不允许有重名的岗位"),
    REF_NO_POSITION_LOWER(1402, "不能关联自己的上级为下级！"),
    CODE_GENERATOR_FAIL(1000, "code生成失败"),
    PRODUCT_BRAND_NAME_ERROR(1101, "品牌名称已存在！"),
    PRODUCT_DIRECTORY_MODULELEVEL_ERROR(1201, "产品目录最高七级目录"),
    PRODUCT_DIRECTORY_BRANDTYEPE_ERROR(1202, "产品目录只能添加竞品品牌数据"),
    PRODUCT_DIRECTORY_ENABLEFLAG_ERROR(1203, "下级有启用状态目录，上级目录不可以停用"),
    PRODUCT_DIRECTORY_BRAND_TYPE_ERROR(1204, "产品目录只能停用竞品目录"),
    PRODUCT_DIRECTORY_FAMILY_DIRECTORY_ERROR(1205, "重复提交，品牌目录已存在"),
    PRODUCT_DIRECTORY_PARENT_TYPE_ERROR(1206, "参数异常，只要母品牌目录默认上游为全部"),
    PRODUCT_DIRECTORY_PRODUCT_COUNT_ERROR(1207, "节点已关联产品数据，不可以停用"),
    PRODUCT_DIRECTORY_NAME_ERROR(1208, "重复提交，同一目录下级目录名称不能重复"),
    BASE_CHANNEL_MODULELEVEL_ERROR(1301, "渠道定义最高十级目录"),
    BASE_CHANNEL_ENABLEFLAG_ERROR(1302, "下级有启用状态渠道，上级渠道不可以停用"),
    AREA_CHILDREN_EXIST(1401, "行政区划存在子节点"),
    DURATION_CONFLICT(1500, "区间冲突"),
    SYNCHRO_PRICE_GROUP(1600, "价格组同步，批量插入失败"),
    SYNCHRO_PRICE_GROUP_UPDATE(1601, "价格组同步，更新失败"),
    SYNCHRO_PRICE_GROUP_CUSTOMER(1700, "价格组_客户组关系同步，批量插入失败"),
    SYNCHRO_PRICE_GROUP_PRODUCT(1800, "价格组_产品关系同步，批量插入失败"),
    SYNCHRO_PRICE_GROUP_PRODUCT_UPDATE(1801, "价格组_产品关系同步，更新失败"),
    SYNCHRO_CUSTOMER_GROUP(1900, "客户组同步，批量插入失败"),
    SYNCHRO_CUSTOMER_GROUP_UPDATE(1901, "客户组同步，更新失败"),
    SYNCHRO_CUSTOMER_GROUP_CUSTOMER(2000, "客户组_客户关系同步，批量插入失败"),
    SYNCHRO_CUSTOMER_GROUP_CUSTOMER_UPDATE(2001, "客户组_客户关系同步，更新失败"),
    SYNCHRO_PRODUCT(2100, "产品同步，批量插入失败"),
    SYNCHRO_PRODUCT_UPDATE(2101, "产品同步，更新失败"),
    SYNCHRO_PRODUCT_IDENT(2200, "产品标识同步，批量插入失败"),
    SYNCHRO_PRODUCT_IDENT_DELETE(2201, "产品标识同步，批量删除失败"),
    SYNCHRO_PRODUCT_UNIT(2300, "产品单位同步，批量插入失败"),
    SYNCHRO_PRODUCT_UNIT_UPDATE(2301, "产品单位同步，更新失败"),
    SYNCHRO_PRODUCT_UNIT_ERROR(2301, "产品单位同步失败，找不到对应的产品信息");

    private final Integer code;
    private final String message;

    HttpStatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
